{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Solve 1D advection-diffusion equation with constant source\n",
    "\n",
    "We would like to solve the 1D advection-diffusion equation with a constant source as a precursor to solving the advection-diffusion equation for temperature in a molten salt reactor with a heat source that is a function of the neutron fission distribution. Possible boundary conditions for the temperature might be a Dirichlet condition at the inlet with a zero Neumann condition at the outlet, e.g. all heat flux at the outlet is do to advection. I'll have to check and see if that's consistent with the Cammi paper."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Dirichlet conditions at inlet and outlet"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "x"
      ]
     },
     "execution_count": 1,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "x, _K1, _K2 = var('x _K1 _K2')\n",
    "y = function('y')(x)\n",
    "de = -diff(y,x,2) + diff(y,x) == 1\n",
    "desolve(de, y, [0, 0, 1, 1])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "desolve(de, y, [0, 1, 1, 2])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Dirichlet condition at inlet and Neumann zero at outlet"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "_K1*e^x + _K2 + x + 1\n"
     ]
    }
   ],
   "source": [
    "f = desolve(de, y)\n",
    "print(f)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "type(f)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "f(10)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "f(x=10)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "_K1*e^x + 1\n"
     ]
    }
   ],
   "source": [
    "fprime = diff(f,x)\n",
    "print(fprime)\n",
    "\n",
    "solve(fprime == 0, _K1)\n",
    "\n",
    "sol = solve([fprime(x=1) == 0], _K1)\n",
    "\n",
    "g = f.subs(sol[0])\n",
    "print(g)\n",
    "\n",
    "sol2 = solve([g(x=0) == 0], _K2)\n",
    "\n",
    "h = g.subs(sol2[0])\n",
    "print(h)\n",
    "print(h.simplify())\n",
    "print(h.expand())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "_K2 + x - e^(x - 1) + 1\n",
      "-(e - 1)*e^(-1) + x - e^(x - 1) + 1\n",
      "-(e - 1)*e^(-1) + x - e^(x - 1) + 1\n",
      "x + e^(-1) - e^(x - 1)\n"
     ]
    }
   ],
   "source": [
    "sol = solve([fprime(x=1) == 0], _K1)\n",
    "\n",
    "g = f.subs(sol[0])\n",
    "print(g)\n",
    "\n",
    "sol2 = solve([g(x=0) == 0], _K2)\n",
    "\n",
    "h = g.subs(sol2[0])\n",
    "print(h)\n",
    "print(h.simplify())\n",
    "print(h.expand())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "-e^(x - 1) + 1\n",
      "-e^(x - 1)\n"
     ]
    }
   ],
   "source": [
    "hprime = h.diff(x)\n",
    "hpp = hprime.diff(x)\n",
    "print(hprime)\n",
    "print(hpp)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "-hpp + hprime - 1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "-(e - 1)*e^(-1) - e^(-1) + 1\n",
      "0\n"
     ]
    }
   ],
   "source": [
    "print(h(x=0).simplify())\n",
    "print(h(x=0).expand())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "-(e - 1)*e^(-1) + 1\n",
      "e^(-1)\n",
      "0.367879441171442\n"
     ]
    }
   ],
   "source": [
    "print(h(x=1))\n",
    "print(h(x=1).expand())\n",
    "print(h(x=1).n())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "p = plot(h, (0, 1))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAw0AAAJICAYAAAAjAwiLAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAAPYQAAD2EBqD+naQAAIABJREFUeJzs3Xl0lPX9vvErEMAoZAqCUZbWgFWqrUCDEDdcQCKokQrC\nRGXTumtUqKj9KhatiEqLqLjVpVI04L6hokZBUVBEVBQ33CoqwbhMgEgKyfP74/m5oIgEkjyZyfU6\nZ07SYZLcOadNc+ezvNOCIAiQJEmSpJ/RKOoAkiRJkuo3S4MkSZKkjbI0SJIkSdooS4MkSZKkjbI0\nSJIkSdooS4MkSZKkjbI0SJIkSdooS4MkSZKkjUrK0hAEAWVlZTiXTpIkSap9SVkaVq5cSSwWY+XK\nlVFHkSRJklJeUpYGSZIkSXXH0iBJkiRpoywNkiRJkjbK0iBJkiRpoywNkiRJkjbK0iBJkiRpoywN\nkiRJkjYqqUtDPB4nPz+foqKiqKNIkiRJKSstSMKxymVlZcRiMRKJBJmZmVHHkSRJkmpdVRWsWxe+\nraqCysrv36+qgm23rb2vnV57n1qSJElquCor4csv4YsvoLQ0fPvto6wMVq36/rFy5ffvl5dDRQWs\nWRO+/fb9det+/ms1ahR+vdpiaZAkSZI20Zo18MknsGzZ929LStYvBt++/fpr2NCenlgMMjOhRQto\n3jx8tGgB7duH72+9NTRr9v1jq62+f79Jk7AgNGoEjRuv/7Y2WRokSZIkwi0+n3wC778fPj7+eP1y\n8MknYRn4ocxM2H57aN063B7UufP372/obatWkJ6Ev4EnYWRJkiRp83zzDXzwQVgK3nvv+8f774fP\nV1R8/9qsLGjXLlwB2Hvv8O23/7ldu/DRokV030tdsjRIkiQp5Xz5Jbz55vePJUvCtx999P1rmjWD\njh2hUyfIy/v+/U6dYMcdw21BClkaJEmSlLRWrYLFi+GVV+D1178vByUl4b83agTZ2bDrrjBkCOyy\nC+y0U1gMdtih9s8CpApLgyRJkuq9IAjPFbz6algQvn373nvhv6Wnh4Vg112hV6/w7e9+Bzvv7IpB\nTbA0SJIkqd757DNYsABefDF8LFwYbjkCaNkSunaFQw+FLl3C93/3u3C7kWqHpUGSJEmRSiTCUvDi\ni98XhWXLwn/bfnvo0QPOPBO6dQtLQvv2kJYWbeaGxtIgSZKkOhME8M47MHdu+Jg/H95+O3y+RQvo\n3h2OPjosCj16hDcUWRCiZ2mQJElSrVm7FhYt+r4kzJ0Ln38eHkDu0gUOOADOPTcsCLvs4sHk+srS\nIEmSpBpTURGuHjz1FDz7LLzwApSXQ0YG9OwJJ54I++4LubnhYDQlh7Qg2NBw6/qtrKyMWCxGv379\nSE9Pp6CggIKCgqhjSZIkNThVVeEtRk8+CcXFYVH45ptw8vG++8I++4Rvu3WDpk2jTqvNldSlIZFI\nkGlFlSRJqjNBAO++GxaE4mJ4+unwVqOttw7LQe/e4aNrV7capRK3J0mSJGmjVqyAxx//fjVh2bJw\nLkLPnnDaaWFJyM11JSGVWRokSZK0nqqq8ArUmTPhkUfgpZfCFYbdd4cjjwxLQq9e4W1HahgsDZIk\nSeKrr8LVhEcegUcfDW84isUgLw9OPRUOPhiysqJOqahYGiRJkhqgIIC33oIHHgiLwvPPQ2VluJpw\n3HHQvz/suWe4DUnyvwaSJEkNRFVVeAXq/feHj3fegW22gT594Nprw6LQvn3UKVUfWRokSZJSWEVF\neMPRfffBgw/C8uXQpg0cfjj885/h+YSttoo6peo7S4MkSVKKWb06PMR8773h1qOVK6FjRzj6aBgw\nINx21Lhx1CmVTDbr9twpU6aQnZ1NRkYGubm5LFiw4Gdfe99997HHHnvQsmVLmjdvTrdu3Zg2bdp6\nrxk5ciSNGjVa79G/f//NiSZJktQgffNNuJoQj8N228GQIeH2o7PPhtdeg6VLYeLEcNiahUHVVe2V\nhhkzZjB69GhuvPFGevTowaRJk8jLy+Odd96hdevWP3n9tttuy/nnn0/nzp1p2rQpDz30ECNHjiQr\nK4uDDjrou9f169ePf//733w7a65Zs2Zb8G1JkiSlvoqK8MajGTPCrUcrV0KXLnD++TB4MHTqFHVC\npYpqT4TOzc2lZ8+eTJ48GYAgCOjQoQOFhYWMGTNmkz5HTk4Ohx56KOPGjQPClYZEIsG99967SR/v\nRGhJktRQrV0bDlibMSNcWUgkYNddw5WFIUNgl12iTqhUVK3tSWvXrmXhwoX07t37u+fS0tLo06cP\n8+bN26TPUVxczDvvvMN+++233vOzZ88mKyuLzp07c8opp/Dll19WJ5okSVLKqqoKDzOfcALssAP0\n6wfPPQennw6LF8Mbb8DYsRYG1Z5qbU8qLS2lsrKSrB9N9sjKyuLtt9/+2Y8rKyujXbt2VFRUkJ6e\nzrXXXsuBBx743b/369ePgQMHkp2dzXvvvcd5551H//79mTdvHmlpadX8liRJklLDG2/Af/4Dt98O\ny5ZBdjYcf3y49ahrV/DXJNWVGrk9KQiCjf5y36JFC1599VVWrVpFcXExZ511Fh07dqRXr14ADB48\n+LvX7rbbbvzhD3+gU6dOzJ49mwMOOKAmIkqSJCWF5cuhqCgsC4sWQatW4bajoUMhN9eioGhUqzS0\nbt2axo0bU1JSst7zK1as+Mnqww+lpaXRsWNHAHbffXeWLFnCpZde+l1p+LHs7Gxat27N0qVLN1oa\n4vE46T8aU1hQUEBBQcGmfkuSJEmRW7MmHLZ2223wxBPQqBEcdli45ah/f2jaNOqEauiqVRqaNGlC\nTk4OxcXF5OfnA+EqQ3FxMYWFhZv8eaqqqqioqPjZf1+2bBlffPEFO+yww0Y/z/Tp0z0ILUmSktai\nRXDLLeH2o6++gr32gmuuCbcftWoVdTrpe9XenjRq1CiGDx9OTk7Od1eulpeXM2LECACGDRtG+/bt\nGT9+PAATJkyge/fudOrUiYqKCmbOnMm0adO4/vrrAVi9ejXjxo1j4MCBbL/99ixdupRzzjmHnXfe\nmby8vJr7TiVJkuqBr76CO+6Am28OS8P224cHnI89FnbeOep00oZVuzQMHjyY0tJSxo4dS0lJCV27\ndmXWrFm0adMGCFcJfrhlaPXq1Zx66qksW7aMjIwMOnfuzO23386gQYMAaNy4Ma+99hpTp07l66+/\npm3btuTl5XHRRRfRpEmTGvo2JUmSovPt7Uc33xxOaV63Dg49FMaNC29CSq+RU6ZS7an2nIb6wDkN\nkiQpGXz8Mdx6a/j48MPwStTjjgsPNW+/fdTppE1nr5UkSapBVVUwaxZcdx3MnAkZGeHtR8ceG55Z\n8PYjJSNLgyRJUg1YsSJcUbjhBvjgA+jSBa69Fo46Clq0iDqdtGUsDZIkSZspCGDu3HBV4e67w6tS\nhwwJDzr37OmqglKHpUGSJKmaVq6EqVPDsvDGG/Db38KECTB8OGy7bdTppJpnaZAkSdpE778PV18d\nzlZYvRoOPxyuvBIOPDBcZZBSlaVBkiRpI4IgvC518mR46CFo2RJOOSV8dOgQdTqpblgaJEmSNuCb\nb8JJzVddBYsXw267hYecjz4att466nRS3bI0SJIk/cCyZeGtRzfeCF9+GQ5hmzQp3ILkwWY1VJYG\nSZIkYN688HzCPfeEKwnHHQennQadOkWdTIpeUpeGeDxOeno6BQUFFBQURB1HkiQlmaqq8JzC5ZfD\n88/DTjuFqwojRjhbQfqhtCAIgqhDVFdZWRmxWIxEIkFmZmbUcSRJUpJZswamTYOJE+Htt2GffeDs\ns8OtSN6CJP1UUq80SJIkVcdXX8H114c3Ia1YAQMGhFOc99wz6mRS/WZpkCRJKe+//w23Hf3rX7Bu\nXTiEbfRo2HnnqJNJycHSIEmSUtZrr8EVV0BRUXhG4cwz4fTTISsr6mRScrE0SJKklDNvHlxyCcyc\nCb/+NfzjH+FtSM2bR51MSk4e9ZEkSSkhCOCpp6B3b9hrL3j/fZg6FZYuhTPOsDBIW8LSIEmSkloQ\nhCsKe+0VFoavvoK774bXX4ehQ6FJk6gTSsnP0iBJkpJSZSXcdRf88Y/fX5U6cyYsXAgDB3p1qlST\n/J+TJElKKpWVcMcd8Pvfw+DB0Lo1PP00zJ0L/ftDWlrUCaXUY2mQJElJobIyvAXp97+Ho4+GTp1g\n/nx44gnYf3/LglSbLA2SJKleq6qCGTPgD3+Ao46Cjh3hxRfh4YehZ8+o00kNg6VBkiTVS1VVcOed\nYVmIx2HHHcOVhZkzYY89ok4nNSyWBkmSVK9UVYW3H3XpAkOGQIcO4dyFRx5xZUGKiqVBkiTVC0EA\n994LXbvCkUdC27bw/PPw2GOQmxt1OqlhS+rSEI/Hyc/Pp6ioKOookiRpMwVBeJi5R4/wqtSsrPAm\npFmzYM89o04nCSAtCIIg6hDVVVZWRiwWI5FIkJmZGXUcSZK0mV54Ac47L7wyNTcXLr00vAlJUv2S\n1CsNkiQpOb3xBgwYEBaFzz+HBx4ItyJZGKT6ydIgSZLqzAcfwLBh4Y1Ir70G//kPvPIK5Oc7Z0Gq\nzywNkiSp1i1fDqedBrvsEp5fuOYaeOstOOYYaNw46nSSfkl61AEkSVLq+vpruOIKuPJKaNoULroI\nTj8dttkm6mSSqsPSIEmSatyaNeFqwvjx4ftnnAFjxkDLllEnk7Q5LA2SJKnGBAHMmBHeiPTxx3DC\nCXDBBbDDDlEnk7QlLA2SJKlGzJ0Lo0fDiy+GB5sffRQ6d446laSa4EFoSZK0Rd59NxzKtu++UFkZ\nzlx44AELg5RKLA2SJGmzlJaGZxV23RUWLIBp08JVBmctSKnH7UmSJKla1qyBq6+GSy4JzzD8/e9Q\nWAgZGVEnk1RbLA2SJGmTVFV9f8h52TI4+WQYOxbatIk6maTaZmmQJEm/aO5cGDUq3IZ0+OEwa1Y4\nqE1Sw5DUZxri8Tj5+fkUFRVFHUWSpJT03/9CPB4ecg4CmD0b7r/fwiA1NGlBEARRh6iusrIyYrEY\niUSCzMzMqONIkpRyysvDSc6XXQaxGEyYAEOHQqOk/nOjpM3l9iRJkvSdIIA774Szz4aSknBL0l//\nCi1aRJ1MUpT8e4EkSQLg5ZehV69wO9If/whLlsCll1oYJFkaJElq8FasgOOPh+7d4csv4fHHw3ML\nnTpFnUxSfeH2JEmSGqh16+Caa+DCC8OzCpMnh9eopvvbgaQf8ceCJEkN0LPPwqmnwuuvw4knwsUX\nQ+vWUaeSVF+5PUmSpAakpASGDw/PLmRkhHMXrrvOwiBp4ywNkiQ1AOvWwdVXw847w8yZ8K9/wbx5\nkJMTdTJJycDSIElSinvuufCQ8xlnQEEBvP02/PnPzlyQtOn8cSFJUopasQJGjoR99oEmTeCFF+D6\n62HbbaNOJinZeBBakqQUU1kZloPzz4e0tPD9P/8ZGjeOOpmkZOVKgyRJKWT+fNhjDzjtNBg0CN55\nJ7wdycIgaUtYGiRJSgFffRWWgz33DFcX5s8PDzt7K5KkmuD2JEmSklgQwIwZcOaZUF4e3pB08smu\nLEiqWUm90hCPx8nPz6eoqCjqKJIk1bn334d+/cIbkfbdF956K9yWZGGQVNPSgiAIog5RXWVlZcRi\nMRKJBJmZmVHHkSSpTq1dC//4B4wbB9ttB1OmwKGHRp1KUipze5IkSUlk3jw44QR4881wS9Lf/gbN\nm0edSlKqS+rtSZIkNRRffw2nnAJ77w0ZGbBgAUycaGGQVDdcaZAkqR4LArjrrnCa8+rVMHlyWB48\ntyCpLrnSIElSPbVsGeTnw5AhsNdesGQJnH66hUFS3bM0SJJUz1RVwQ03wK67wssvw/33wz33QPv2\nUSeT1FBZGiRJqkeWLoXeveGkk8IVhjfegMMPjzqVpIau1krDlClTyM7OJiMjg9zcXBYsWPCzr73v\nvvvYY489aNmyJc2bN6dbt25MmzattqJJklTvVFaG16juvjt89BE8+WQ40flXv4o6mSTVUmmYMWMG\no0ePZty4cSxatIguXbqQl5dHaWnpBl+/7bbbcv755zN//nwWL17MyJEjGTlyJE888URtxJMkqV55\n/XXYc084+2w48URYvDhcbZCk+qJWhrvl5ubSs2dPJk+eDEAQBHTo0IHCwkLGjBmzSZ8jJyeHQw89\nlHHjxv3k3xzuJklKBf/7H1x6KVxyCey0E9x8c1geJKm+qfGVhrVr17Jw4UJ6/+BPJGlpafTp04d5\n8+Zt0ucoLi7mnXfeYb/99qvpeJIk1QsLFkBODvz973DOObBokYVBUv1V43MaSktLqaysJCsra73n\ns7KyePvtt3/248rKymjXrh0VFRWkp6dz7bXXcuCBB9Z0PEmSIlVeDmPHwqRJ0LUrvPQSdOkSdSpJ\n2rg6G+4WBAFpaWk/++8tWrTg1VdfZdWqVRQXF3PWWWfRsWNHevXqVVcRJUmqVbNnw5//HM5fGD8e\nRo+GdMesSkoCNf6jqnXr1jRu3JiSkpL1nl+xYsVPVh9+KC0tjY4dOwKw++67s2TJEi699NKNloZ4\nPE76j37aFhQUUFBQsAXfgSRJNWv16nAL0pQpsM8+MHMm7LJL1KkkadPVeGlo0qQJOTk5FBcXk5+f\nD4SrDMXFxRQWFm7y56mqqqKiomKjr5k+fboHoSVJ9drcuTBiBHz6KUyeDKedBo2ckiQpydTKouio\nUaMYPnw4OTk59OjRg0mTJlFeXs6IESMAGDZsGO3bt2f8+PEATJgwge7du9OpUycqKiqYOXMm06ZN\n4/rrr6+NeJIk1bo1a+D88+Gf/4TcXHj0Ufjtb6NOJUmbp1ZKw+DBgyktLWXs2LGUlJTQtWtXZs2a\nRZs2bQBYtmzZetuKVq9ezamnnsqyZcvIyMigc+fO3H777QwaNKg24kmSVKsWLIDhw+G99+Cyy2DU\nKGjcOOpUkrT5amVOQ21zToMkqT763//gootgwoTwZqTbboPddos6lSRtOe9skCSpBrz6ari68MYb\n4ZWq550HTZpEnUqSaoZHsSRJ2gLr1oUTnffYAyor4cUXw9JgYZCUSlxpkCRpM735Zri6sHAhjBkD\nf/sbNGsWdSpJqnmuNEiSVE2VleGtSN26QSIBzz0Hl15qYZCUuiwNkiRVw/vvwwEHwF/+AiefDIsW\nhVeqSlIqc3uSJEmbIAjg1lvhjDOgdWt4+mnYb7+oU0lS3XClQZKkX1BaCgMHwnHHwZFHwmuvWRgk\nNSyuNEiStBGPPQYjR8LatXDPPXDEEVEnkqS650qDJEkbUF4Op58O/fpBly6weLGFQVLD5UqDJEk/\n8vLLcPTR8OGHcPXVcOqpkJYWdSpJik5SrzTE43Hy8/MpKiqKOookKQVUVoZXp/bsCRkZYXk47TQL\ngySlBUEQRB2iusrKyojFYiQSCTIzM6OOI0lKAR9+CEOHhjMXzj03HNTWtGnUqSSpfnB7kiSpwbvj\njnDmQsuWMGcO7Ltv1IkkqX5J6u1JkiRtiZUrYfjw8PzCoYfCq69aGCRpQ1xpkCQ1SC+9BAUFsHw5\nTJ0abk2SJG2YKw2SpAalqgomToS99oJYLDzsbGGQpI2zNEiSGozly8O5C2efDWeeCc8/D7/9bdSp\nJKn+c3uSJKlBePTR8PxCo0Ywaxb07Rt1IklKHq40SJJSWkUFjBoF/ftD9+7w2msWBkmqLlcaJEkp\n6+23w8POb7wBkyZBYWG40iBJqh5/dEqSUk4QwC23wB//COXlMH9+eIbBwiBJm8cfn5KklPL11+Hq\nwnHHhW8XLoRu3aJOJUnJze1JkqSU8cILEI/DV1/BjBkweHDUiSQpNbjSIElKekEA//wn7LMPbL89\nvPKKhUGSalJSl4Z4PE5+fj5FRUVRR5EkReTLL2HAABg9Gs46C555BnbcMepUkpRa0oIgCKIOUV1l\nZWXEYjESiQSZmZlRx5EkRWT+fBgyBFatgttug0MPjTqRJKWmpF5pkCQ1TN9uR9p3X2jXDhYtsjBI\nUm2yNEiSksqPtyPNmQO//nXUqSQptXl7kiQpafxwO9JDD7m6IEl1xZUGSVK953YkSYqWpUGSVK99\n+SUcfrjbkSQpSm5PkiTVWz/cjvTww3DIIVEnkqSGyZUGSVK9EwRw5ZXfb0d65RULgyRFydIgSapX\nVq6EeDzcinTGGeF2pA4dok4lSQ2b25MkSfXGm2/CEUfAJ5/A3XfDwIFRJ5IkgSsNkqR64s47YY89\noFEjWLDAwiBJ9YmlQZIUqbVr4cwzwwPP+fnwwguwyy5Rp5Ik/ZDbkyRJkfn0Uxg8OCwKV18Np54K\naWlRp5Ik/ZilQZIUidmzw9WFJk3gmWdgzz2jTiRJ+jlJvT0pHo+Tn59PUVFR1FEkSZsoCOCKK6BP\nH9htN3j5ZQuDJNV3aUEQBFGHqK6ysjJisRiJRILMzMyo40iSNlEiASNHwn33wbnnwsUXQ7pr3pJU\n7/mjWpJUJxYvDm9EKimB+++Hww+POpEkaVMl9fYkSVJymDYNevaEjAxYuNDCIEnJxtIgSao1FRXh\njUhDh8KgQTBvHuy0U9SpJEnV5fYkSVKtWLYsLAqLFsF118GJJ3qdqiQlK0uDJKnGPfMMHHkkNGsG\nzz4LPXpEnUiStCXcniRJqjFBEA5p690bdt01PL9gYZCk5GdpkCTViG++gREjoLAQTj8dnngC2rSJ\nOpUkqSa4PUmStMX++1/4059gyZLwpqSjj446kSSpJlkaJElb5OmnYfBg2GYbeP556NYt6kSSpJrm\n9iRJ0mYJArjySjjoIOjSBV56ycIgSanK0iBJqrZvvoFhw+Css8LHY49B69ZRp5Ik1Ra3J0mSqmXZ\nsvD8whtvwB13QEFB1IkkSbUtqUtDPB4nPT2dgoICCvx/LUmqdc8/D0ccAU2bwnPPuR1JkhqKtCAI\ngqhDVFdZWRmxWIxEIkFmZmbUcSSpQbjlFjj55HDuwt13Q1ZW1IkkSXXFMw2SpI1atw7OOAOOOy6c\nw1BcbGGQpIYmqbcnSZJq1xdfwJAhMGcOTJkSrjSkpUWdSpJU1ywNkqQNeuMNyM+HRCKc7rz//lEn\nkiRFxe1JkqSfeOAByM0NB7YtWGBhkKSGztIgSfpOEMDFF8OAAdC3b3hbUnZ21KkkSVFze5IkCYDV\nq8ODznffDePGwfnnQyP/tCRJwtIgSQI++ggOPxyWLoV77w2Ht0mS9K3N+hvSlClTyM7OJiMjg9zc\nXBYsWPCzr73pppvo1asXrVq1olWrVhx00EE/ef3IkSNp1KjReo/+/ftvTjRJUjXNnQt77AFlZTBv\nnoVBkvRT1S4NM2bMYPTo0YwbN45FixbRpUsX8vLyKC0t3eDr58yZw1FHHcXs2bOZP38+HTp0oG/f\nvnz22Wfrva5fv36UlJSwfPlyli9fTlFR0eZ9R5KkTTZ1KvTuDb/7Hbz4IvzhD1EnkiTVR9WeCJ2b\nm0vPnj2ZPHkyAEEQ0KFDBwoLCxkzZswvfnxVVRUtW7ZkypQpHHPMMUC40pBIJLj33ns3KYMToSVp\ny1RVwf/9H0yYAMceC9ddB02bRp1KklRfVWulYe3atSxcuJDevXt/91xaWhp9+vRh3rx5m/Q5Vq9e\nzdq1a2nVqtV6z8+ePZusrCw6d+7MKaecwpdfflmdaJKkTbRqFQwcCJddBhMnwk03WRgkSRtXrYPQ\npaWlVFZWkpWVtd7zWVlZvP3225v0Oc455xzatWtHnz59vnuuX79+DBw4kOzsbN577z3OO+88+vfv\nz7x580hz9Kgk1ZiPPw4Hti1dGs5iOOywqBNJkpJBjdyeFATBJv1yP2HCBO68807mzJlD0x/8WWvw\n4MHfvb/bbrvxhz/8gU6dOjF79mwOOOCAmogoSQ3eiy+GNyQ1bQrPPQe77x51IklSsqhWaWjdujWN\nGzempKRkvedXrFjxk9WHH5s4cSKXX345xcXF7Lbbbht9bXZ2Nq1bt2bp0qUbLQ3xeJz09PW/hYKC\nAgoKCn7hO5GkhmXGjHAGQ7ducN998As/siVJWk+1SkOTJk3IycmhuLiY/Px8IFxlKC4uprCw8Gc/\n7oorrmD8+PE8/vjjdOvW7Re/zrJly/jiiy/YYYcdNvq66dOnexBakjYiCMJBbePGwdFHh+cXttoq\n6lSSpGRT7StXR40axY033sjUqVN56623OOmkkygvL2fEiBEADBs2jL/+9a/fvf7yyy/nggsu4JZb\nbuHXv/41JSUllJSUsHr1aiA8GD1mzBheeOEFPvroI4qLixkwYAA777wzeXl5NfNdSlID9M03UFAQ\nFoa//x3+8x8LgyRp81T7TMPgwYMpLS1l7NixlJSU0LVrV2bNmkWbNm2AcJXgh1uGrrvuOtauXcug\nQYPW+zwXXnghY8eOpXHjxrz22mtMnTqVr7/+mrZt25KXl8dFF11EkyZNtvDbk6SG6bPPYMAAWLwY\n7r47vC1JkqTNVe05DfWBcxok6ee98kp4K1JVFTz4IOTkRJ1IkpTsqr09SZJUfz38MOyzT3jQecEC\nC4MkqWZYGiQpRVx9dXil6kEHwTPPQNu2USeSJKUKS4MkJbnKSjjzTCgshLPOCs8wbL111KkkSamk\nRoa7SZKisXo1HHVUuC3p2mvh5JOjTiRJSkWWBklKUp9+Gh54fucdeOgh6N8/6kSSpFRlaZCkJLR4\nMRxySHhD0ty50KVL1IkkSanMMw2SlGRmzYK994Ztt4UXXrAwSJJqn6VBkpLIDTeEKwy9eoU3JLVr\nF3UiSVJDYGmQpCRQVQVjxsBJJ4WP+++HFi2iTiVJaiiS+kxDPB4nPT2dgoICCgoKoo4jSbXim29g\n6FC491648srwatW0tKhTSZIakrQgCIKoQ1RXWVkZsViMRCJBZmZm1HEkqdaUlIQD2xYvhjvuCN+X\nJKmuJfVKgySlsjffDK9RXbMG5syB7t2jTiRJaqg80yBJ9dCcObDXXtC8Ocyfb2GQJEXL0iBJ9cyd\nd0LfvvDHP4YzGH7zm6gTSZIaOkuDJNUjkybBkCFw5JHw6KMQi0WdSJIkS4Mk1QtVVXDWWTBqFJx7\nLkydCk0Iiq6TAAAgAElEQVSbRp1KkqSQB6ElKWJr1oRXqt5zD1xzDZx6atSJJElan6VBkiL05Zcw\nYAAsWBDOYRgwIOpEkiT9lKVBkiLy0UfQrx+sWAFPPQV77hl1IkmSNszSIEkReOWVcAbDVlvB88/D\nzjtHnUiSpJ/nQWhJqmNPPAG9ekHbtjBvnoVBklT/WRokqQ5NnRquMOyzD8yeDVlZUSeSJOmXWRok\nqQ4EAYwfD8OHw7Bh8MAD4bRnSZKSgaVBkmrZunVwyinwf/8Hf/sb3HQTNGkSdSpJkjZdUh+Ejsfj\npKenU1BQQEFBQdRxJOknysshHodHHoGbb4Zjj406kSRJ1ZcWBEEQdYjqKisrIxaLkUgkyMzMjDqO\nJG3Q55/DYYfB66/DXXeF16tKkpSMknqlQZLqqw8/hL59IZEIDzx37x51IkmSNp9nGiSphr32Guy1\nF1RVhTMYLAySpGRnaZCkGvTMM+EMhu23h+eeg06dok4kSdKWszRIUg25//5wS1JOjjMYJEmpxdIg\nSTXgpptg4MDw4PMjj4B3NEiSUomlQZK2QBDAJZfA8cfDSSfB9OnQrFnUqSRJqlneniRJm6mqCs44\nA665Bi66CM4/H9LSok4lSVLNszRI0maoqIBhw+Duu+GGG+CEE6JOJElS7bE0SFI1rVwJf/oTzJ0b\nDm074oioE0mSVLssDZJUDStWQP/+8O678NhjsP/+USeSJKn2WRokaRN98EF4peqqVeE8hi5dok4k\nSVLd8PYkSdoEr74aTnmGcGibhUGS1JAkdWmIx+Pk5+dTVFQUdRRJKWzuXNhvP2jbNiwMHTtGnUiS\npLqVFgRBEHWI6iorKyMWi5FIJMh0gpKkWvToo+HQth494MEHHdomSWqYknqlQZJq0/TpkJ8PffqE\n5cHCIElqqCwNkrQB118PRx0F8Tjccw9kZESdSJKk6FgaJOkHggAuvRROPhlOOw1uuw2aNIk6lSRJ\n0bI0SNL/FwRwzjnw17/ChRfC5MnQyJ+SkiQ5p0GSACor4cQT4eab4cor4Ywzok4kSVL9YWmQ1OBV\nVMAxx8B998G//w3Dh0edSJKk+sXSIKlBW70ajjgC5swJDzwffnjUiSRJqn8sDZIarK++gkMOgcWL\nwytVDzgg6kSSJNVPlgZJDdJnn0FeHnz6KTz1FOyxR9SJJEmqvywNkhqcDz6Agw6CNWvgmWdg112j\nTiRJUv3mZYKSGpQ33oC994a0NJg718IgSdKmsDRIajBefBF69YI2beDZZ2HHHaNOJElScrA0SGoQ\nZs+G3r2hc+fwpqTtt486kSRJySOpS0M8Hic/P5+ioqKoo0iqxx59FPr1g9xcePxx+NWvok4kSVJy\nSQuCIIg6RHWVlZURi8VIJBJkZmZGHUdSPXbPPVBQEJaGGTNgq62iTiRJUvJJ6pUGSdqY//wHBg8O\nh7fdfbeFQZKkzWVpkJSSrr8ehg2DESPg9tuhSZOoE0mSlLwsDZJSzj/+ASefDIWF8K9/QePGUSeS\nJCm5WRokpYwggHHj4C9/gb/+Fa68Ehr5U06SpC3mRGhJKSEI4Oyzw1WG8ePhvPOiTiRJUuqwNEhK\nelVVcOqp4TmGq66C00+POpEkSaml1hbup0yZQnZ2NhkZGeTm5rJgwYKffe1NN91Er169aNWqFa1a\nteKggw7a6Osl6Vvr1oWHnW+4AW6+2cIgSVJtqJXSMGPGDEaPHs24ceNYtGgRXbp0IS8vj9LS0g2+\nfs6cORx11FHMnj2b+fPn06FDB/r27ctnn31WG/EkpYiKChgyBIqK4I474Nhjo04kSVJqqpXhbrm5\nufTs2ZPJkycDEAQBHTp0oLCwkDFjxvzix1dVVdGyZUumTJnCMccc85N/d7ibpPJyGDgQnnoK7roL\n8vOjTiRJUuqq8ZWGtWvXsnDhQnr37v3dc2lpafTp04d58+Zt0udYvXo1a9eupVWrVjUdT1IKWLUK\nDjkEnnkGZs60MEiSVNtqvDSUlpZSWVlJVlbWes9nZWWxfPnyTfoc55xzDu3ataNPnz41HU9Skisr\ng4MPhoULYdYs8MeEJEm1r85uTwqCgLS0tF983YQJE7jzzjuZM2cOTZs2rYNkkpLFV1+FheHtt+GJ\nJ6Bnz6gTSZLUMNR4aWjdujWNGzempKRkvedXrFjxk9WHH5s4cSKXX345xcXF7Lbbbr/4teLxOOnp\n638LBQUFFBQUVD+4pHrtiy+gb1/48EMoLoacnKgTSZLUcNR4aWjSpAk5OTkUFxeT//83GgdBQHFx\nMYWFhT/7cVdccQXjx4/n8ccfp1u3bpv0taZPn+5BaKkBWLECDjoIPv00PPjcpUvUiSRJalhqZXvS\nqFGjGD58ODk5OfTo0YNJkyZRXl7OiBEjABg2bBjt27dn/PjxAFx++eWMHTuWoqIifv3rX3+3StG8\neXO22Wab2ogoKUksXw69e4crDbNnwyYsQkqSpBpWK6Vh8ODBlJaWMnbsWEpKSujatSuzZs2iTZs2\nACxbtmy9bUXXXXcda9euZdCgQet9ngsvvJCxY8fWRkRJSeCTT+DAA8PbkubMgV12iTqRJEkNU63M\naahtzmmQUt9//xsWhv/9L9yStNNOUSeSJKnhqrPbkyRpU33wARxwADRqFM5i2HHHqBNJktSw1fic\nBknaEu++C716QZMm4ZYkC4MkSdGzNEiqN958E/bbD5o3DwtDhw5RJ5IkSWBpkFRPvP467L8/bLtt\neEtS27ZRJ5IkSd+yNEiK3CuvhIWhbVt4+mn4hTmQkiSpjlkaJEXqpZfCW5Kys8NJz61bR51IkiT9\nmKVBUmTmzQsHt3XuDE8+Ca1aRZ1IkiRtiKVBUiSefRb69oUuXWDWLIjFok4kSZJ+jqVBUp2bMwcO\nPhh69IBHH4UWLaJOJEmSNsbSIKlOzZ4N/fvDXnvBww/DNttEnUiSJP2SpC4N8Xic/Px8ioqKoo4i\naRPMng2HHAJ77w0PPggZGVEnkiRJmyItCIIg6hDVVVZWRiwWI5FIkJmZGXUcSZvg6afDwrDvvnD/\n/RYGSZKSSVKvNEhKDhYGSZKSm6VBUq166qmwMPTqZWGQJClZWRok1ZriYjj0UAuDJEnJztIgqVb8\nuDBstVXUiSRJ0uayNEiqcd8Whv33tzBIkpQKLA2SatSTT4aF4YAD4L77LAySJKUCS4OkGvPEE3DY\nYXDggXDvvRYGSZJShaVBUo14/HHIzw8Lwz33WBgkSUollgZJW+yHhcEVBkmSUo+lQdIW+bYw9OkT\nFoZmzaJOJEmSapqlQdJme+KJ7wvDPfdYGCRJSlWWBkmb5amnwsLQu7eFQZKkVJfUpSEej5Ofn09R\nUVHUUaQG5ZlnwluSevWyMEiS1BCkBUEQRB2iusrKyojFYiQSCTIzM6OOIzUozz0HeXmQmwsPPQQZ\nGVEnkiRJtS2pVxok1a358+Hgg6F7d3jwQQuDJEkNhaVB0iZZsCBcYejaFR5+GLbeOupEkiSprlga\nJP2il1+Gvn1ht93gkUegefOoE0mSpLpkaZC0Ua++CgcdBDvvDI8+Ci1aRJ1IkiTVNUuDpJ/1+uvh\nDIYdd4RZsyAWizqRJEmKgqVB0ga9+WY4g6Fdu3CI269+FXUiSZIUFUuDpJ94+2048EDIyoInn4RW\nraJOJEmSomRpkLSepUvDwtCqVVgYWreOOpEkSYqapUHSdz74ICwMLVpAcTFst13UiSRJUn1gaZAE\nwEcfwQEHQLNm8NRTsP32USeSJEn1haVBEh9/HBaGRo3CwtC2bdSJJElSfZIedQBJ0frkk3BLUlUV\nzJkDHTpEnUiSJNU3lgapAVu+PLxWtaIiLAy/+U3UiSRJUn2U1NuT4vE4+fn5FBUVRR1FSjqlpWFh\nWLky3JKUnR11IkmSVF+lBUEQRB2iusrKyojFYiQSCTIzM6OOIyWdr78OtyR98km4wtC5c9SJJElS\nfeb2JKmBWbkS+vULb0t6+mkLgyRJ+mWWBqkBKS+Hww6DJUvCOQy77x51IkmSlAwsDVIDUVEBRxwB\nCxbA449D9+5RJ5IkScnC0iA1AGvXwpAhMHs2zJwJe+8ddSJJkpRMLA1SiqushGHD4JFH4P77wxuT\nJEmSqsPSIKWwqir485/hrrtgxgzo3z/qRJIkKRlZGqQUFQRw+ulw223wn//AwIFRJ5IkScnK0iCl\noCCAMWPg2mvhxhvh6KOjTiRJkpJZUk+ElrRh48bBxIkweTIcf3zUaSRJUrKzNEgp5vLLw9Jw6aVQ\nWBh1GkmSlAosDVIKueYaOOccuOACOPfcqNNIkqRUYWmQUsQtt4QHn0eNClcaJEmSakpSl4Z4PE5+\nfj5FRUVRR5EiVVQUXq160knhWYa0tKgTSZKkVJIWBEEQdYjqKisrIxaLkUgkyMzMjDqOFKn77oMj\nj4RjjglXGxol9Z8CJElSfeSvF1ISe+wxGDIknMFw880WBkmSVDv8FUNKUnPnwhFHQF4eTJsGjRtH\nnUiSJKUqS4OUhF5+GQ45BHJz4c47oUmTqBNJkqRUZmmQksxbb4WrC7vsAg88ABkZUSeSJEmpztIg\nJZEPP4Q+fSArCx59FFq0iDqRJElqCCwNUpJYvhwOOgiaNYMnnoBtt406kSRJaijSow4g6Zd9+SX0\n7Qvl5eEB6B12iDqRJElqSDZrpWHKlClkZ2eTkZFBbm4uCxYs+NnXLlmyhEGDBpGdnU2jRo246qqr\nfvKacePG0ahRo/Ueu+666+ZEk1LOqlXQvz98+mm4wpCdHXUiSZLU0FS7NMyYMYPRo0czbtw4Fi1a\nRJcuXcjLy6O0tHSDry8vL6dTp05cdtll7LCRP4/+/ve/p6SkhOXLl7N8+XLmzp1b3WhSylmzBgYM\ngCVLwpkMdmlJkhSFapeGSZMmceKJJzJs2DA6d+7M9ddfz9Zbb80tt9yywdd3796dyy67jMGDB9O0\nadOf/bzp6em0adOG7bbbju22245WrVpVN5qUUtatg3gcnnsOHn4YunePOpEkSWqoqlUa1q5dy8KF\nC+ndu/d3z6WlpdGnTx/mzZu3RUHeffdd2rVrR6dOnTjmmGP4+OOPt+jzScmsqgqOPRZmzoR77oFe\nvaJOJEmSGrJqlYbS0lIqKyvJyspa7/msrCyWL1++2SFyc3P597//zaxZs7j++uv54IMP6NWrF6tX\nr97szyklqyCAwsJwyvO0aeF5BkmSpCjVyO1JQRCQlpa22R+fl5f33fu///3v6dGjB7/5zW+48847\nGTlyZE1ElJLGBRfAlClw440wZEjUaSRJkqpZGlq3bk3jxo0pKSlZ7/kVK1b8ZPVhS8RiMXbeeWeW\nLl260dfF43HS09f/FgoKCigoKKixLFJduuIKuOQSmDgRjj8+6jSSJEmhapWGJk2akJOTQ3FxMfn5\n+UC4ylBcXExhYWGNhVq1ahXvvfcew4YN2+jrpk+fTmZmZo19XSlK//oXjBkD558Po0dHnUaSJOl7\n1d6eNGrUKIYPH05OTg49evRg0qRJlJeXM2LECACGDRtG+/btGT9+PBAenl6yZAlBEPC///2PTz75\nhFdffZXmzZvTqVMnAM4++2wOO+wwfvOb3/DJJ59w4YUXkp6e7oqBGozp0+HEE+G00+Cii6JOI0mS\ntL5ql4bBgwdTWlrK2LFjKSkpoWvXrsyaNYs2bdoAsGzZsvW2DH366ad069btuzMPEydOZOLEiey3\n33489dRT333MUUcdxRdffEGbNm3YZ599mD9/Pttuu21NfI9SvTZzJgwdGj4mT4YtOB4kSZJUK9KC\nIAiiDlFdZWVlxGIxEomE25OU1ObMgYMPDh933QXpNXI1gSRJUs2q9nA3STXjpZfgsMNgn33C7UkW\nBkmSVF9ZGqQILFkSri7sthvcdx80axZ1IkmSpJ9naZDq2EcfQd++0LYtPPIING8edSJJkqSNszRI\ndejzz8PC0KwZzJoFLVtGnUiSJOmXuYtaqiMrV0L//pBIwHPPwQ47RJ1IkiRp01gapDpQUQEDBsA7\n74Q3Jv3/ESWSJElJwdIg1bLKSjj6aHj++XBLUteuUSeSJEmqHkuDVIuCAE45Be6/H+69F3r1ijqR\nJElS9VkapFp0wQVw441w662Qnx91GkmSpM2T1LcnxeNx8vPzKSoqijqK9BOTJ8Mll8AVV8CIEVGn\nkSRJ2nxpQRAEUYeorrKyMmKxGIlEgszMzKjjSD8xbRoMHQpjxsBll0WdRpIkacsk9UqDVB898giM\nHAnHHgsTJkSdRpIkactZGqQa9NxzMGgQHHII3HADpKVFnUiSJGnLWRqkGrJ4MRx6KOyxBxQVQbrX\nDEiSpBRhaZBqwAcfQF4e7LgjPPggZGREnUiSJKnmWBqkLVRSAn37wtZbw2OPQSwWdSJJkqSa5QYK\naQskEtCvH6xaFZ5nyMqKOpEkSVLNszRIm2nNGjj8cHj/fXjmGejYMepEkiRJtcPSIG2GdeugoABe\neAGeeAJ23z3qRJIkSbXH0iBVUxDAiSfCQw/BAw/APvtEnUiSJKl2WRqkavrrX+GWW2Dq1HAegyRJ\nUqrz9iSpGq66Kpzy/I9/wNChUaeRJEmqG5YGaRPdeSeceSb85S8walTUaSRJkuqOpUHaBE8/Ha4s\nHHUUXHZZ1GkkSZLqVlKXhng8Tn5+PkVFRVFHUQp75ZXwatX99gvPMjRK6v/VSJIkVV9aEARB1CGq\nq6ysjFgsRiKRIDMzM+o4SmEffgh77glt28Ls2dCiRdSJJEmS6p5/M5V+Rmkp5OXBNtvAI49YGCRJ\nUsPllavSBqxeDYceCl9/Dc8/D1lZUSeSJEmKjqVB+pG1a2HwYHj9dZgzBzp1ijqRJElStCwN0g98\nO+358cdh5kzIyYk6kSRJUvQsDdIPnH8+3HorTJsGfftGnUaSJKl+8CC09P9dcw2MHw8TJ8LRR0ed\nRpIkqf6wNEjA3XdDYWE46Xn06KjTSJIk1S+WBjV4s2eHKwvxOFxxRdRpJEmS6h9Lgxq0114Lpz33\n6gX//rfTniVJkjbEX5HUYH30EfTrBzvtBPfeC02bRp1IkiSpfrI0qEH64gs4+GDYaiunPUuSJP0S\nr1xVg1NeHk57/uILeO45pz1LkiT9kqReaYjH4+Tn51NUVBR1FCWJdetgyBBYvDgc3vbb30adSJIk\nqf5LC4IgiDpEdZWVlRGLxUgkEmRmZkYdR0kiCOCEE8IDzw8/DHl5USeSJElKDm5PUoNx8cVw000w\ndaqFQZIkqTqSenuStKluvRUuvDCc+Dx0aNRpJEmSkoulQSlv1iw4/ng46SQ499yo00iSJCUfS4NS\n2ssvw6BB4TyGq6+GtLSoE0mSJCUfS4NS1ocfwiGHwO9+B9OnQ7oneCRJkjaLpUEp6csvw9WFrbcO\nb0raZpuoE0mSJCUv//aqlLNmDRx+OHz+OcybB9ttF3UiSZKk5GZpUEqpqoJhw+Cll+Dppx3eJkmS\nVBMsDUopZ58N99wD994LublRp5EkSUoNlgaljCuvhH/+E665JtyeJEmSpJrhQWilhLvvhlGj4Jxz\n4NRTo04jSZKUWiwNSnpz58Ixx0BBQTjxWZIkSTXL0qCk9tZbkJ8Pe+4Jt9wCjfxvtCRJUo1L6l+x\n4vE4+fn5FBUVRR1FEVi+HA4+GNq2hfvug2bNok4kSZKUmtKCIAiiDlFdZWVlxGIxEokEmZmZUcdR\nBFauhP33D4vD/PnQoUPUiSRJklKXtycp6axdC4MHw7vvhucZLAySJEm1y9KgpBIEcNJJ8OST8Nhj\nsPvuUSeSJElKfZYGJZVLLgkPPE+dCr17R51GkiSpYUjqg9BqWKZNgwsugIsvhqFDo04jSZLUcFga\nlBRmz4Zjjw0f//d/UaeRJElqWCwNqvfefBP+9CfYbz+4/npIS4s6kSRJUsNSa6VhypQpZGdnk5GR\nQW5uLgsWLPjZ1y5ZsoRBgwaRnZ1No0aNuOqqq2orlpJMSQn07w/t28Pdd0OTJlEnkiRJanhqpTTM\nmDGD0aNHM27cOBYtWkSXLl3Iy8ujtLR0g68vLy+nU6dOXHbZZeywww61EUlJaPVqOOwwqKiAmTMh\nFos6kSRJUsNUK8PdcnNz6dmzJ5MnTwYgCAI6dOhAYWEhY8aM2ejHZmdnc9ZZZ1FYWPizr3G4W+qr\nrISBA8OrVZ99Frp1izqRJElSw1XjKw1r165l4cKF9P7BfZhpaWn06dOHefPm1fSXU4oaPRoeegju\nvNPCIEmSFLUaLw2lpaVUVlaSlZW13vNZWVksX768pr+cUtDkyeFjypTwPIMkSZKiVWe3JwVBQJrX\n3ugX3H8/nHUWnH12OPlZkiRJ0avxidCtW7emcePGlJSUrPf8ihUrfrL6sKXi8Tjp6et/CwUFBRQU\nFNTo11HdePFFOOooGDQIJkyIOo0kSZK+VeOloUmTJuTk5FBcXEx+fj4QrjIUFxdv9HDz5pg+fboH\noVPEBx+ENyV16wa33QaNnCAiSZJUb9R4aQAYNWoUw4cPJycnhx49ejBp0iTKy8sZMWIEAMOGDaN9\n+/aMHz8eCA9PL1myhCAI+N///scnn3zCq6++SvPmzenUqVNtRFQ98tVX4dmFzEx44AHIyIg6kSRJ\nkn6oVkrD4MGDKS0tZezYsZSUlNC1a1dmzZpFmzZtAFi2bNl624o+/fRTunXr9t2Zh4kTJzJx4kT2\n228/nnrqqdqIqHqioiKc9vz55zBvHrRuHXUiSZIk/VitzGmobc5pSA1BAEOHhpOei4th772jTiRJ\nkqQNqZWVBmlTjB0Lt98OM2ZYGCRJkuozj5sqErfeCn//O1x2GQweHHUaSZIkbYylQXXu6afhhBPg\n+OPDeQySJEmq3ywNqlNvvQVHHAEHHBBOfHbenyRJUv1naVCd+fxzOOQQaNsW7roLmjSJOpEkSZI2\nhQehVSfWrIEBA2DVqvCmpFgs6kSSJEnaVJYG1boggGOPhZdfhtmzYccdo04kSZKk6rA0qNZdeCEU\nFYVbknr2jDqNJEmSqsszDapVU6fCxRfDpZfCoEFRp5EkSdLmsDSo1syZA3/+Mxx3HJxzTtRpJEmS\ntLnSgiAIog5RXWVlZcRiMfr160d6ejoFBQUUFBREHUs/8M47kJsL3brBY495U5IkSVIyS+rSkEgk\nyMzMjDqOfqS0FPbcE9LT4fnnoWXLqBNJkiRpS3gQWjWqogL+9CdIJGD+fAuDJElSKrA0qMYEQXiG\nYcECePpp6Ngx6kSSJEmqCZYG1ZiLLoJp02D69HB7kiRJklKDtyepRtx+O/ztb/D3v8OQIVGnkST9\nv/buPDjq+v7j+GtzaVQSTQkBIlBGKiDYQDmDSEdIZQCNXKZZBzk8ATEi4ZhypIR6gdTRIiKHQEGb\ngIIKWi6j4ZqAIQI6tVJRi4IkGB02TRg0JN/fH9+fmabAkg3Jfr67+3zM7ACbPV6bec+y7/183t8v\nADQkmgZctt277TM+jxkjzZxpOg0AAAAaGk0DLssXX9iDz336SMuWSS6X6UQAAABoaDQNqLfTp6U7\n7pDi4qQNG6SoKNOJAAAA0BgYhEa9nDsnpaVJJSX2oVXj4kwnAgAAQGOhaYDPLEvKyLAPq7ptm3Tj\njaYTAQAAoDHRNMBnL74oLVkiLV8u9e9vOg0AAAAaGzMN8MnWrdLkydKUKfaJ3AAAABD8aBpQZ//4\nhz3HMHiwtGCB6TQAAADwF5dlWZbpEL4qKytTbGysBg0apIiICLndbrndbtOxgtp330k9e0oxMdKe\nPVKTJqYTAQAAwF8CumnweDyKiYkxHSfonT0rDRhgn5Phww+l1q1NJwIAAIA/MQgNryxLevBBqahI\n2rmThgEAACAU0TTAq6efll59VcrNlXr1Mp0GAAAAJjAIjYt64w1p1ixp7lzp9783nQYAAACm0DTg\ngg4ckEaPltxuKSvLdBoAAACYRNOA8xw/LqWmSklJ0sqVkstlOhEAAABMomlALRUVdsMQGSm99ZZ0\n5ZWmEwEAAMA0BqFRo7paGjVK+vxzae9eKSHBdCIAAAA4AU0DasycKW3aZF9+/WvTaQAAAOAUNA2Q\nJK1eLc2fLz33nDRkiOk0AAAAcBJmGqBdu6SHHrIvkyebTgMAAACnoWkIcV98IQ0fLt16q/Tiixwp\nCQAAAOejaQhhZWXSnXdKcXH2idwiI00nAgAAgBMx0xCiqqrsE7d9+620f7903XWmEwEAAMCpAnql\nIT09XampqcrJyTEdJeDMmCFt3SqtXy+1b286DQAAAJzMZVmWZTqEr8rKyhQbGyuPx6OYmBjTcQLO\nqlXSffdJL7wgZWSYTgMAAACnC+iVBvhuzx7p4YftIyU9+qjpNAAAAAgENA0h5N//to+U1KePtGgR\nR0oCAABA3dA0hIjycik1VWrSxD5SUlSU6UQAAAAIFBw9KQRUV0ujRtkrDQUFUtOmphMBAAAgkNA0\nhIDZs6VNm6TNm6VOnUynAQAAQKChaQhyr70mPf209Oyz0pAhptMAAAAgEDHTEMT275fuv18aO1bK\nzDSdBgAAAIGKpiFIffONdNddUrdu0ssvc6QkAAAA1B9NQxCqqLAbhiuukN580/4TAAAAqC9mGoJM\ndbU0Zoz0r39Je/dKzZqZTgQAAIBAR9MQZObNkzZssFcYkpJMpwEAAEAwYHtSEFm/XsrOlp58Uho6\n1HQaAAAABAuXZVmW6RC+KisrU2xsrAYNGqSIiAi53W653W7TsYw6cEC69VZp+HDp1VcZfAYAAEDD\nCeimwePxKCYmxnQc406elLp3l66/XsrPl6KjTScCAABAMGF7UoA7e1YaNsz++5tv0jAAAACg4TEI\nHcAsSxo/Xjp0SNq9W2rZ0nQiAAAABCOahgD2/PPSX/8qrV0r9ehhOg0AAACCFduTAtSOHdLUqfZl\n1CjTaQAAABDMGIQOQEePSj17Sr16Se+8I4WHm04EAACAYMZKQ4ApK5NSU6X4eCknh4YBAAAAjY+Z\nhnERSqwAABFhSURBVABSXW1vRTpxQvrwQ+naa00nAgAAQCio10rD4sWL1bZtW0VHR6t3794qLCz0\nevvXX39dHTt2VHR0tJKSkrRly5ZaPx83bpzCwsJqXQYPHlyfaEFtzhx7O1JOjtS+vek0AAAACBU+\nNw3r1q1TZmamsrOzdfDgQSUlJWngwIEqLS294O0LCgp0zz336MEHH9ShQ4c0dOhQDR06VJ9++mmt\n2w0aNEglJSUqLi5WcXGxcnJy6veKgtS6ddJTT0nPPCPRTwEAAMCffB6E7t27t3r16qUXXnhBkmRZ\nllq1aqWMjAxNnz79vNunp6frzJkz2rRpU811ycnJ6tq1q1566SVJ9kqDx+PRxo0b65Qh1AahP/pI\n6tvXPonbq69KLpfpRAAAAAglPq00VFZWqqioSAMGDKi5zuVyKSUlRQUFBRe8T0FBgVJSUmpdN3Dg\nwPNun5+fr4SEBHXo0EETJ07UDz/84Eu0oFVSIg0dKt10k7RiBQ0DAAAA/M+npqG0tFRVVVVKSEio\ndX1CQoKKi4sveJ/i4uJL3n7QoEFas2aN3n//fS1YsEA7d+7U4MGDFYBHg21QP/0kjRhh//nWW1J0\ntOlEAAAACEUNcvQky7Lk8uEr8P+9fVpaWs3fO3XqpJtvvlk33HCD8vPzddtttzVExIBjWdKkSVJh\nofTBB9L115tOBAAAgFDlU9PQtGlThYeHq6SkpNb1p06dOm814WfNmzf36faS1LZtWzVt2lRHjx71\n2jSkp6crIqL2S3C73XK73Zd6KY63ZIm0fLn0yitSnz6m0wAAACCU+dQ0REZGqlu3bsrLy1Nqaqok\ne9UgLy9PGRkZF7xPcnLyeT/fsWOHkpOTL/o8x48f1/fff68WLVp4zZObmxuUg9D5+dJjj0kZGdJ9\n95lOAwAAgFDn8yFXp0yZomXLlmnNmjX67LPPNH78eJ05c0Zjx46VJI0ePVozZ86suf1jjz2mLVu2\n6LnnntORI0c0d+5cFRUVadKkSZKkiooKTZ8+Xfv379exY8eUl5enoUOH6sYbb9TAgQMb5lUGkK++\nkkaOlH77W+nPfzadBgAAAKjHTENaWppKS0uVlZWlkpISdenSRdu2bVN8fLwke5Xgv7cMJScnKycn\nR7NmzdKsWbP0q1/9Sm+//bZuuukmSVJ4eLg+/vhjrVmzRqdPn1bLli01cOBAzZs3T5GRkQ30MgND\nebl0111SbKx9XoYIztcNAAAAB/D5PA1OEIznaaiulu6+W9q+XSookDp3Np0IAAAAsPFdtkP86U/S\nxo32oVVpGAAAAOAkPs80oOFt3CjNnSvNm2dvTwIAAACchKbBsE8+kUaPtoefZ882nQYAAAA4H02D\nQaWlUmqq1K6dtHq15MP58QAAAAC/YabBkMpKKS3NPmJSfr509dWmEwEAAAAXRtNgyNSp0u7d0nvv\nSW3amE4DAAAAXBxNgwGrV0t/+Yu0eLF9EjcAAADAyZhp8LPCQmn8eOm++6QJE0ynAQAAAC6NpsGP\nSkqkYcOkLl3sVQYGnwEAABAIArppSE9PV2pqqnJyckxHuaSffrIPq1pVJW3YIF15pelEAAAAQN0E\n9ExDbm6uYmJiTMeok8mTpf377SMlJSaaTgMAAADUXUA3DYFixQppyRJp6VKpTx/TaQAAAADfBPT2\npEBQUCA98oj08MPSQw+ZTgMAAAD4jqahEX37rTRihNSjh32IVQAAACAQ0TQ0kh9/tAefXS7pjTek\nqCjTiQAAAID6YaahEViWNGmSVFQk7dolNW9uOhEAAABQfzQNjWDpUnv4eeVKqVcv02kAAACAy8P2\npAa2Z4+UkWEPP48bZzoNAAAAcPlclmVZpkP4qqysTLGxsfJ4PI46T8Px41L37lL79tJ770mRkaYT\nAQAAAJePlYYGcvasNHy43Si8/joNAwAAAIIHMw0NwLKkCROkTz6xtyc1a2Y6EQAAANBwaBoawOLF\n0urV0po1UrduptMAAAAADYvtSZdp505p8mT7cu+9ptMAAAAADY9B6MvwzTf2ykLnztL27VIE6zYA\nAAAIQgG90pCenq7U1FTl5OT4/bnPnpVGjJCio6V162gYAAAAELwC+qNubm6ukZWGn8/4/PHH0t69\nUny83yMAAAAAfhPQTYMpy5ZJr7wirVrF4DMAAACCX0BvTzJh3z7p0UeliROlsWNNpwEAAAAaH4PQ\nPigutlcWfvlL6YMPpKgovz01AAAAYAwrDXVUWSmlpUnV1fYZn2kYAAAAECqYaaijzEypoEDKz5da\ntjSdBgAAAPAfmoY6WLtWWrTIPvPzLbeYTgMAAAD4F9uTLuHgQemhh6QxY6QJE0ynAQAAAPyPQWgv\nvv9e6t5diouT9uyxT+QGAAAAhBq2J11EVZXkdkvl5fYcAw0DAAAAQhVNw0XMmiXl5Uk7dkht2phO\nAwAAAJhD03ABGzZI8+dLzz4r9e9vOg0AAABgFoPQ/+PTT+0zPael2YdZBQAAAEJdQA9CDxo0SBER\nEXK73XK73Zf9uB6P1KOHdMUV9jkZrrmmAcICAAAAAS6gm4aGPHpSdbU0dKi0a5d04IDUrl2DPCwA\nAAAQ8Jhp+H9PPCFt3iy98w4NAwAAAPDfmGmQ9O670ty59mXIENNpAAAAAGcJ+e1JR4/aJ3Dr1096\n6y0pjDYKAAAAqCWkPyKXl0vDhknNmklr19IwAAAAABcSsjMNliXdf7/01VfS/v1SbKzpRAAAAIAz\nhWzT8Nxz0vr10uuvS506mU4DAAAAOFdIbsjJz5dmzJCmTZNGjjSdBgAAAHC2kBuEPnFC+s1v7NWF\n7duliJBdawEAAADqJqRWGn76Sbr7bikyUsrNpWEAAAAA6iKkPjZPnWqf7XnXLvuISQAAAAAuLWSa\nhtdekxYtkl56Serd23QaAAAAIHCExPakjz+WHnxQuvdeafx402kAAACAwBL0g9CnT0s9ekhXXSUV\nFNh/AgAAAKi7gN6elJ6eroiICLndbrnd7vN+Xl0tjRkjffedVFREwwAAAADUR0A3Dbm5uV5XGubP\nlzZtkjZvlm64wY/BAAAAgCAStDMNO3ZIs2dLc+ZId9xhOg0AAAAQuIJypuHrr+0TuHXvLr37rhQe\nbiAkAAAAECSCbqXhxx+lkSOla66xD7NKwwAAAABcnoCeabiQxx6zD7G6d6/0i1+YTgMAAAAEvqBq\nGlatkpYulVaskLp1M50GAAAACA5Bsz3po4+kCROkBx6Q7r/fdBoAAAAgeARF0/DDD9KIEVLnztKi\nRabTwOlycnJMR0AAom5QH9QN6oO6QX00dt0EfNNQXS2NGiWVlUkbNkhXXmk6EZyON2PUB3WD+qBu\nUB/UDeqjsesm4Gca/vQnaetW+9Kmjek0AAAAQPAJ6JWG7dul7Gxp3jzp9tvNZnHStwJOyiI5L8+J\nEydMR6jhtN+Nk/I4KYtE3XjjpDxOyiJRN96Q5+KcVDeSs343TsoiOStPY9dNQDcNDzwgDRkizZxp\nOomzisZJWSTn5XHSm7HTfjdOyuOkLBJ1442T8jgpi0TdeEOei3NS3UjO+t04KYvkrDyNXTdGtydZ\nlqX//Oc/Pt/v1KkySdK115Zp8WKpvLyhk/nu3LlzKisrMx1DkrOySM7LY1mWY/I47XfjpDxOyiJR\nN944KY+TskjUjTfkuTgn1Y3krN+Nk7JIzspzuXXTpEkTuVyui/7cZVmWVe9Hv0xlZWWKjY019fQA\nAAAAJHk8HsXExFz050abhvquNJw+XaY2bVrpm2++8friAAAAAFzapVYajG5Pcrlcl/WhPyYmhqYB\nAAAAaGQBPQgNAAAAoPHRNAAAAADwiqYBAAAAgFc0DQAAAAC8omlAUFm8eLHatm2r6Oho9e7dW4WF\nhRe97YoVK9SvXz/FxcUpLi5Ov/vd77zeHsHNl9r5b7m5uQoLC9Pw4cMbOSGcyNe68Xg8euSRR9Sy\nZUtFR0erQ4cO2rp1q5/Swil8rZvnn39eHTp00FVXXaXWrVtrypQp+vHHH/2UFk62e/dupaamKjEx\nUWFhYdq0aVOjPRdNA4LGunXrlJmZqezsbB08eFBJSUkaOHCgSktLL3j7nTt36p577lF+fr727dun\nVq1a6fbbb9fJkyf9nBym+Vo7Pzt27JimTZumfv36+SkpnMTXuqmsrFRKSoq+/vprbdy4UUeOHNHy\n5cuVmJjo5+Qwyde6+dvf/qY//OEPys7O1meffaaVK1dq3bp1mjVrlp+Tw4kqKirUpUsXLV682Ovh\nUhuEFYA8Ho8lyfJ4PKajwEF69eplZWRk1Py7urraSkxMtObPn1+n+1dVVVkxMTHW2rVrGysiHKo+\ntVNVVWX17dvXWrlypTV27Fhr2LBh/ogKB/G1bpYsWWK1a9fOOnfunL8iwoF8rZtJkyZZKSkpta7L\nzMy0br311kbNicDjcrmst99+u9Een5UGBIXKykoVFRVpwIABNde5XC6lpKSooKCgTo9RUVGhyspK\nxcXFNVZMOFB9ayc7O1vNmjXTuHHj/BETDlOfutm8ebOSk5M1ceJENW/eXDfffLOefvppVVdX+ys2\nDKtP3fTp00dFRUU1W5i+/PJL/f3vf9eQIUP8khn4mdGTuwENpbS0VFVVVUpISKh1fUJCgo4cOVKn\nx5gxY4YSExOVkpLSGBHhUPWpnb1792rVqlU6fPiwPyLCgepTN19++aXef/99jRo1Slu2bNHnn3+u\niRMnqqqqSrNnz/ZHbBhWn7pxu90qLS1V3759ZVmWqqqqNH78eM2YMcMfkYEaAdk0NGnSRB6PR02a\nNDEdBQ5nWVad9vg988wzWr9+vXbu3KmoqCg/JIPTXax2ysvLde+992r58uW67rrrDCSDk3l7z6mu\nrlZCQoKWLVsml8ulrl276sSJE1q4cCFNQ4jzVjf5+fl66qmn9PLLL6tnz546evSoMjIy1KJFC+oG\nfhWQTYPL5VJMTIzpGHCQpk2bKjw8XCUlJbWuP3Xq1Hnf6PyvhQsXasGCBcrLy1OnTp0aMyYcyNfa\n+eKLL3Ts2DHdeeedsixLkmq2l0RFRenIkSNq27Zt4weHUfV5z2nRooWioqJqfTjs2LGjiouLde7c\nOUVEBOR/yfBBfeomKytLo0ePrtkK2alTJ5WXl+vhhx+maYBfMdOAoBAZGalu3bopLy+v5jrLspSX\nl6c+ffpc9H7PPvusnnzySW3btk1du3b1R1Q4jK+107FjR33yySc6dOiQDh8+rMOHDys1NVX9+/fX\n4cOH1apVK3/GhyH1ec+55ZZbdPTo0VrXHTlyRC1atKBhCBH1qZszZ84oLKz2x7WwsDBZllXzxQXg\nD+Fz586dazoE0BBiYmI0Z84ctW7dWldccYVmz56tw4cPa8WKFbr66qs1evRoFRYW1gygLViwQFlZ\nWVq7dq06d+6siooKVVRUyOVysUUpxPhSO+Hh4YqPj6912bZtmyzL0qRJk877zx3By9f3nPbt22vh\nwoUqLi5Wu3bttG/fPk2bNk0ZGRnq27ev4VcDf/G1bk6ePKlFixapbdu2uuaaa1RYWKipU6eqf//+\nGjlypOFXA9MqKir0z3/+U8XFxVq6dKl69uyp6OhoVVZWKjY2tkGfi682EDTS0tJUWlqqrKwslZSU\nqEuXLtq2bZvi4+MlScePH6/1bd6SJUtUWVl53pvuH//4R2VlZfk1O8zytXYAyfe6uf7667V9+3Y9\n/vjjSkpKUmJioh5//HFNnz7d1EuAAb7WzZw5cxQWFqY5c+boxIkTio+PV2pqqp544glTLwEOcuDA\nAd12221yuVxyuVzKzMyUJI0ZM0YrV65s0OdyWaxtAQAAAPCCdXQAAAAAXtE0AAAAAPCKpgEAAACA\nVzQNAAAAALyiaQAAAADgFU0DAAAAAK9oGgAAAAB4RdMAAAAAwCuaBgAAAABe0TQAAAAA8IqmAQAA\nAIBXNA0AAAAAvPo/hrxwHN67JykAAAAASUVORK5CYII=\n",
      "text/plain": [
       "Graphics object consisting of 1 graphics primitive"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "show(p)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Solve with non-constant diffusion coefficient"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "_K2*x - (x + 1)*log(x + 1) + _K1 + x\n"
     ]
    }
   ],
   "source": [
    "x, _K1, _K2 = var('x _K1 _K2')\n",
    "y = function('y')(x)\n",
    "de = -diff((1 + x) * diff(y, x), x) + diff(y,x) == 1\n",
    "f = desolve(de, y)\n",
    "print(f)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "x*log(2) - (x + 1)*log(x + 1) + x\n",
      "x*log(2) - x*log(x + 1) + x - log(x + 1)\n",
      "log(2) - log(x + 1)\n",
      "-1/(x + 1)\n",
      "0\n",
      "0\n",
      "0\n",
      "0.306852819440055\n"
     ]
    }
   ],
   "source": [
    "fprime = diff(f,x)\n",
    "\n",
    "sol = solve([fprime(x=1) == 0], _K2)\n",
    "\n",
    "g = f.subs(sol[0])\n",
    "\n",
    "sol2 = solve([g(x=0) == 0], _K1)\n",
    "\n",
    "h = g.subs(sol2[0])\n",
    "print(h.simplify())\n",
    "print(h.expand())\n",
    "hp = diff(h, x)\n",
    "hpp = diff(hp, x)\n",
    "print(hp)\n",
    "print(hpp)\n",
    "print(h(x=0))\n",
    "print(hp(x=1))\n",
    "print(-diff((1 + x) * diff(h, x), x) + diff(h,x) - 1)\n",
    "print(h(x=1).n())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\nRNMAAAAAwCWaBgSV1atXKyEhQRERERo2bJjKy8vbPHfDhg0aOXKkunbtqq5du2rs2LEuz0dwc6d2\nvm/btm0KCQnRo48+6uOEsCJ366aurk7PPPOMevTooYiICPXt21f79u3zU1pYhbt1s2rVKvXt21ed\nOnVSfHy85syZo2vXrvkpLazsww8/1Pjx4xUbG6uQkBDt3r3bZ89F04CgsX37dmVmZiovL0+VlZVK\nSkpSWlqaHA7HTc8vLS3V5MmTVVJSosOHDysuLk4PPvigLly44OfkMJu7tfOd06dPa968eRo5cqSf\nksJK3K2bxsZGpaam6quvvtLOnTtVXV2t9evXKzY21s/JYSZ362bLli167rnnlJeXpxMnTmjjxo3a\nvn27srOz/ZwcVlRfX6+BAwdq9erVLi+X6hVGAKqrqzMkGXV1dWZHgYUMHTrUyMjIaPn/5uZmIzY2\n1li2bNktPb6pqcmIjIw0Nm/e7KuIsChPaqepqckYPny4sXHjRmPatGnGI4884o+osBB362bNmjVG\nr169jOvXr/srIizI3bqZNWuWkZqa2upYZmamMWLECJ/mROCx2WzGrl27fPbzWWlAUGhsbFRFRYXG\njBnTcsxmsyk1NVVlZWW39DPq6+vV2Niorl27+iomLMjT2snLy9Pdd9+t6dOn+yMmLMaTunnvvfeU\nnJysmTNnqnv37howYICWLl2q5uZmf8WGyTypm5SUFFVUVLSMMJ06dUp79uzRQw895JfMwHdMvbkb\n4C0Oh0NNTU2Kjo5udTw6OlrV1dW39DPmz5+v2NhYpaam+iIiLMqT2jl06JA2bdqkqqoqf0SEBXlS\nN6dOnVJxcbGeeOIJ7d27V1988YVmzpyppqYmLViwwB+xYTJP6sZut8vhcGj48OEyDENNTU2aMWOG\n5s+f74/IQIuAbBo6d+6suro6de7c2ewosDjDMG5pxu+ll17Sjh07VFpaqg4dOvghGayurdq5evWq\npkyZovXr1+uuu+4yIRmszNVnTnNzs6Kjo7Vu3TrZbDYNGjRI586d0/Lly2ka2jlXdVNSUqIlS5Zo\n7dq1GjJkiE6ePKmMjAzFxMRQN/CrgGwabDabIiMjzY4BC+nWrZtCQ0NVW1vb6vjFixdv+I3ODy1f\nvlz5+fkqKipSYmKiL2PCgtytnS+//FKnT5/Www8/LMMwJKllvKRDhw6qrq5WQkKC74PDVJ585sTE\nxKhDhw6tvhz269dPNTU1un79usLCAvKfZLjBk7rJzc3V1KlTW0YhExMTdfXqVT399NM0DfAr9jQg\nKISHh2vw4MEqKipqOWYYhoqKipSSktLm415++WW9+OKLKiws1KBBg/wRFRbjbu3069dPx44d05Ej\nR1RVVaWqqiqNHz9eo0ePVlVVleLi4vwZHybx5DPngQce0MmTJ1sdq66uVkxMDA1DO+FJ3TQ0NCgk\npPXXtZCQEBmG0fKLC8AfQhctWrTI7BCAN0RGRionJ0fx8fHq2LGjFixYoKqqKm3YsEF33HGHpk6d\nqvLy8pYNaPn5+crNzdXmzZvVv39/1dfXq76+XjabjRGldsad2gkNDVVUVFSrP4WFhTIMQ7Nmzbrh\nH3cEL3c/c/r06aPly5erpqZGvXr10uHDhzVv3jxlZGRo+PDhJr8a+Iu7dXPhwgW9/vrrSkhI0J13\n3qny8nLNnTtXo0eP1uOPP27yq4HZ6uvr9fnnn6umpkZvvfWWhgwZooiICDU2NqpLly5efS5+tYGg\nMXHiRDkcDuXm5qq2tlYDBw5UYWGhoqKiJElnz55t9du8NWvWqLGx8YYP3YULFyo3N9ev2WEud2sH\nkNyvm549e2r//v2aPXu2kpKSFBsbq9mzZysrK8uslwATuFs3OTk5CgkJUU5Ojs6dO6eoqCiNHz9e\nixcvNuslwEI++eQTjRo1SjabTTabTZmZmZKkJ598Uhs3bvTqc9kM1rYAAAAAuMA6OgAAAACXaBoA\nAAAAuETTAAAAAMAlmgYAAAAALtE0AAAAAHCJpgEAAACASzQNAAAAAFyiaQAAAADgEk0DAAAAAJdo\nGgAAAAC4RNMAAAAAwCWaBgAAAAAu/Rd/vkvMoz/WuQAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "Graphics object consisting of 1 graphics primitive"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "p = plot(h, (0, 1))\n",
    "show(p)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Neumann condition at inlet and outlet"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "_K2 + x - e^(x - 1) + 1\n"
     ]
    }
   ],
   "source": [
    "sol = solve([fprime(x=1) == 0], _K1)\n",
    "\n",
    "g = f.subs(sol[0])\n",
    "print(g)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "-e^(x - 1) + 1\n",
      "0\n"
     ]
    }
   ],
   "source": [
    "gprime = g.diff(x)\n",
    "print(gprime)\n",
    "print(gprime(x=1))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "As indicated by the cell above and below, it is literally **impossible to impose a Neumann condition at both inlet and outlet** for the advection-diffusion problem because one condition specifies K1, but K2 vanishes after differentiation so it cannot be specified by imposing a Neumann condition. So Riveria must have been smoking some crack when she wrote those two conditions down."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "ename": "IndexError",
     "evalue": "list index out of range",
     "output_type": "error",
     "traceback": [
      "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[1;31mIndexError\u001b[0m                                Traceback (most recent call last)",
      "\u001b[1;32m<ipython-input-25-c23d33e01eb6>\u001b[0m in \u001b[0;36m<module>\u001b[1;34m()\u001b[0m\n\u001b[0;32m      2\u001b[0m \u001b[0msol2\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0msolve\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mgprime\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mx\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mInteger\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;36m0\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m \u001b[1;33m==\u001b[0m \u001b[0mInteger\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;36m0\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0m_K2\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m      3\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 4\u001b[1;33m \u001b[0mh\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mg\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0msubs\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0msol2\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mInteger\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;36m0\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m      5\u001b[0m \u001b[1;32mprint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mh\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m      6\u001b[0m \u001b[1;32mprint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mh\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0msimplify\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
      "\u001b[1;32m/usr/lib/sagemath/local/lib/python2.7/site-packages/sage/structure/sequence.pyc\u001b[0m in \u001b[0;36m__getitem__\u001b[1;34m(self, n)\u001b[0m\n\u001b[0;32m    529\u001b[0m                             cr = self.__cr)\n\u001b[0;32m    530\u001b[0m         \u001b[1;32melse\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 531\u001b[1;33m             \u001b[1;32mreturn\u001b[0m \u001b[0mlist\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m__getitem__\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m,\u001b[0m\u001b[0mn\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m    532\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m    533\u001b[0m     \u001b[1;31m# We have to define the *slice functions as long as Sage uses Python 2.*\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
      "\u001b[1;31mIndexError\u001b[0m: list index out of range"
     ]
    }
   ],
   "source": [
    "sol2 = solve([gprime(x=0) == 0], _K2)\n",
    "\n",
    "h = g.subs(sol2[0])\n",
    "print(h)\n",
    "print(h.simplify())\n",
    "print(h.expand())"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Advection-diffusion equation, no source, InletBC"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "_K1*e^x + _K2\n"
     ]
    }
   ],
   "source": [
    "x, _K1, _K2 = var('x _K1 _K2')\n",
    "y = function('y')(x)\n",
    "de = -diff(y,x,2) + diff(y,x) == 0\n",
    "f = desolve(de, y)\n",
    "print(f)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "_K1*e^x\n",
      "-1/2*_K2*e^(x - 1) + _K2\n"
     ]
    }
   ],
   "source": [
    "fprime = diff(f, x)\n",
    "print(fprime)\n",
    "sol = solve(-fprime(x=1) == f(x=1), _K1)\n",
    "g = f.subs(sol[0])\n",
    "print(g)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "-e^(x - 1) + 2\n",
      "1.63212055882856\n",
      "1.00000000000000\n"
     ]
    }
   ],
   "source": [
    "gp = diff(g, x)\n",
    "sol = solve(gp(x=0) - g(x=0) == -2, _K2)\n",
    "h = g.subs(sol[0])\n",
    "print(h)\n",
    "print(h(x=0).n())\n",
    "print(h(x=1).n())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "Graphics object consisting of 1 graphics primitive"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "p = plot(h, (0,1))\n",
    "show(p)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Advection-diffusion equation, no source, u(0) = 1, -u'(1) = u(1)\n",
    "### Corresponds to `advection_diffusion_left_diri_one_right_robin_bc.i`"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## a = 1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "_K1*e^x + _K2\n"
     ]
    }
   ],
   "source": [
    "x, _K1, _K2 = var('x _K1 _K2')\n",
    "y = function('y')(x)\n",
    "de = -diff(y,x,2) + diff(y,x) == 0\n",
    "f = desolve(de, y)\n",
    "print(f)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "_K1*e^x\n",
      "-1/2*_K2*e^(x - 1) + _K2\n"
     ]
    }
   ],
   "source": [
    "fprime = diff(f, x)\n",
    "print(fprime)\n",
    "sol = solve(-fprime(x=1) == f(x=1), _K1)\n",
    "g = f.subs(sol[0])\n",
    "print(g)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "2*e/(2*e - 1) - e^x/(2*e - 1)\n",
      "1.00000000000000\n",
      "0.612699836780282\n"
     ]
    }
   ],
   "source": [
    "gp = diff(g, x)\n",
    "sol = solve(g(x=0) == 1, _K2)\n",
    "h = g.subs(sol[0])\n",
    "print(h)\n",
    "print(h(x=0).n())\n",
    "print(h(x=1).n())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\nYII=\n",
      "text/plain": [
       "Graphics object consisting of 1 graphics primitive"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "p = plot(h, (0,1))\n",
    "show(p)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## a = 100"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "_K1*e^(100*x) + _K2\n"
     ]
    }
   ],
   "source": [
    "x, _K1, _K2 = var('x _K1 _K2')\n",
    "y = function('y')(x)\n",
    "de = -diff(y,x,2) + 100 * diff(y,x) == 0\n",
    "f = desolve(de, y)\n",
    "print(f)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "100*_K1*e^(100*x)\n",
      "-1/101*_K2*e^(100*x - 100) + _K2\n"
     ]
    }
   ],
   "source": [
    "fprime = diff(f, x)\n",
    "print(fprime)\n",
    "sol = solve(-fprime(x=1) == f(x=1), _K1)\n",
    "g = f.subs(sol[0])\n",
    "print(g)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "101*e^100/(101*e^100 - 1) - e^(100*x)/(101*e^100 - 1)\n",
      "1.00000000000000\n",
      "0.990099009900990\n"
     ]
    }
   ],
   "source": [
    "gp = diff(g, x)\n",
    "sol = solve(g(x=0) == 1, _K2)\n",
    "h = g.subs(sol[0])\n",
    "print(h)\n",
    "print(h(x=0).n())\n",
    "print(h(x=1).n())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\nrCxYsCCdnZ39jr/99ttz//33Z/369Xn55Zdz/fXX54orrsi2bdt6x1x77bXp6OjIww8/nJdeeimX\nXHJJ5s+fn127dvWO+d73vpePfvSj+Rf/4l/kr/7qr/J3f/d3WbVqVU466aQTuGwAABhZyhkaqkql\nUmkgH5g3b17mzp2bdevWJUlKpVJmzJiRZcuWZeXKlceMb2pqyqpVq3LDDTf07lu0aFHGjRuXhx56\nKAcPHszEiRPz2GOPZeHChb1jzjvvvFx66aVZu3ZtkmTx4sWpq6vLn/7pn/5Cde7bty+TJk3K3r17\n09DQMJBLBACAivPpTyevvpo888zwn3tAnYaurq688MILufjii3v3VVVVZf78+dmyZUu/nzl06FDG\njh3bZ199fX2e+aerPXz4cLq7uwvHlEql/O///b9z5plnZuHChWlsbMy8efPyla98ZSDlAwDAiDVi\npid1dnamu7s7jY2NffY3NjZm9+7d/X5mwYIFuffee7N9+/aUSqU8+eST2bx5c+/UowkTJuSCCy7I\nnXfemV27duXIkSPZsGFDtmzZ0jvmjTfeyP79+/P5z38+l156aZ588slcccUV+Y3f+I1885vfPJHr\nBgCAEaWcoaFmMA5SKpVSVVXV7/fWrVuX6667LmeffXbGjBmTD33oQ1m6dGkefPDB3jEbNmzI0qVL\n09TUlJqampx77rm56qqr8uKLLyZJjhw5kiS5/PLLs2zZsiTJr/3ar+Wv//qv86UvfSkf/ehHj1tb\na2tramr6XubixYuzePHi93TNAAAwnEZMaJgyZUqqq6uzZ8+ePvvfeOONY7oPP/uZzZs35913382b\nb76ZadOm5dZbb01zc3PvmObm5jz11FN55513sm/fvjQ2Nqa1tbV3zJQpU1JTU5OZM2f2OfbMmTPz\nrW99q7DmtrY2axoAABjxRsz0pNra2syZMycdHR29+0qlUjo6OnLhhRcWfrauri7Tpk1LV1dXHnnk\nkVx++eXHjKmvr09jY2PeeuuttLe3946pra3Nv/yX/zKvvPJKn/F///d/n9NOO20glwAAACPSiOk0\nJMnNN9+cq6++OnPmzMn555+f++67L2+//XauueaaJMmSJUsyffr03H333UmSZ599Njt37szs2bOz\nY8eOrFmzJqVSKStWrOg95hNPPJFSqZSzzjorr776alauXJmZM2f2HjNJVqxYkdbW1nz0ox/Nxz/+\n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\nABQSGgAAgEKmJwEAAIWqqpLqap0GAACgQG2t0AAAABSorTU9CQAAKFBTo9MAAAAUMD0JAAAoJDQA\nAACFamr1CsTXAAATDUlEQVSsaQAAAAroNAAAAIWEBgAAoJBHrgIAAIU8chUAAChkehIAAFBIaAAA\nAAp55CoAAFCoojsN69evT3Nzc+rr6zNv3rw899xzxx17+PDhrF27NmeccUbq6+tzzjnnpL29vc+Y\n/fv356abbsrpp5+ecePG5aKLLsrzzz/f5xi33HJLfu3Xfi0TJkxIU1NTrr766uzatetEygcAgFGh\nYkPDpk2bsnz58qxZsyZbt27NrFmzsmDBgnR2dvY7/vbbb8/999+f9evX5+WXX87111+fK664Itu2\nbesdc+2116ajoyMPP/xwXnrppVxyySWZP39+byh4++23853vfCe//du/na1bt+Yv/uIv8sorr+RT\nn/rUCV42AACMfMP1yNWqUqlUGsgH5s2bl7lz52bdunVJklKplBkzZmTZsmVZuXLlMeObmpqyatWq\n3HDDDb37Fi1alHHjxuWhhx7KwYMHM3HixDz22GNZuHBh75jzzjsvl156adauXdtvHc8//3zmzp2b\n73//+5k+ffox39+3b18mTZqUvXv3pqGhYSCXCAAAI8KiRcn+/cnXvja05xlQp6GrqysvvPBCLr74\n4t59VVVVmT9/frZs2dLvZw4dOpSxY8f22VdfX59nnnkmSc/Uo+7u7sIx/fnHf/zHVFVV5X3ve99A\nLgEAAEaNipye1NnZme7u7jQ2NvbZ39jYmN27d/f7mQULFuTee+/N9u3bUyqV8uSTT2bz5s29U48m\nTJiQCy64IHfeeWd27dqVI0eOZMOGDdmyZctx1ywcOnQot956a6666qpMmDBhIJcAAACjxnBNT6oZ\njIOUSqVUVVX1+71169bluuuuy9lnn50xY8bkQx/6UJYuXZoHH3ywd8yGDRuydOnSNDU1paamJuee\ne26uuuqqvPjii8cc7/Dhw/n3//7fp6qqKv/tv/23n1tba2tramr6XubixYuzePHiAV4lAABUluF6\nI/SAQsOUKVNSXV2dPXv29Nn/xhtvHNN9+NnPbN68Oe+++27efPPNTJs2Lbfeemuam5t7xzQ3N+ep\np57KO++8k3379qWxsTGtra19xiQ/DQw/+MEP8vWvf/0X6jK0tbVZ0wAAwKhUkdOTamtrM2fOnHR0\n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\n633R3d1damhoKP3Zn/3ZUJVIBTmR+6W7u7t00UUXlR544IHSNddcU7riiiuGo1QqxEDvmT/+4z8u\nnXHGGaXDhw8PV4lUkIHeLzfeeGNp/vz5ffYtX7689NGPfnRI62RkqaqqKn3lK18ZkmOPuk5DV1dX\nXnjhhVx88cW9+6qqqjJ//vxs2bKljJVRToNxXxw4cCBdXV2ZPHnyUJVJhTjR+2XNmjX5wAc+kE9/\n+tPDUSYV5ETumcceeywXXHBBPvOZz+SDH/xgPvKRj+T3fu/3cuTIkeEqmzI5kfvlwgsvzAsvvNA7\nhem1117L//k//yeXXXbZsNQMNeUuYLB1dnamu7s7jY2NffY3NjbmlVdeKVNVlNtg3Be33HJLmpqa\nMn/+/KEokQpyIvfLt771rTz44IPZtm3bcJRIhTmRe+a1117L17/+9fzmb/5mvvrVr+bVV1/NZz7z\nmXR3d+eOO+4YjrIpkxO5XxYvXpzOzs5cdNFFKZVK6e7uzg033JBbbrllOEqG0RcajqdUKg3tPC9G\npF/0vvjc5z6X//k//2eefvrp1NXVDUNlVKLj3S/79+/Pf/yP/zH3339/Tj755DJURqUq+h1z5MiR\nNDY25r//9/+eqqqqnHPOOdm5c2fuueceoeGXVNH98o1vfCN33313vvSlL+X888/P9u3bs2zZskyb\nNs39wrAYdaFhypQpqa6uzp49e/rsf+ONN45J9PzyeC/3xT333JPf//3fT0dHRz784Q8PZZlUiIHe\nL9/73vfy/e9/P//23/7blEqlJOmdYlJXV5dXXnklzc3NQ184ZXMiv2OmTZuWurq6Pn9JnDlzZnbv\n3p3Dhw+npmbU/S+af3Ii98vq1auzZMmS3umPH/7wh7N///5cf/31QgPDYtStaaitrc2cOXPS0dHR\nu69UKqWjoyMXXnhhGSujnE70vviDP/iD/O7v/m7a29tzzjnnDEepVICB3i8zZ87M3/3d3+U73/lO\ntm3blm3btqWlpSWf+MQnsm3btsyYMWM4y6cMTuR3zK//+q9n+/btffa98sormTZtmsAwyp3I/fL2\n229nzJi+f20bM2ZMSqVS7z9WwFCq/p3f+Z3fKXcRg62hoSGrVq3KqaeemrFjx+aOO+7Itm3b8uUv\nfznjx48vd3mUyc+7L5YsWZLnnnuud2Ha7//+72f16tX5sz/7s/zqr/5qDhw4kAMHDqSqqsoUpV8C\nA7lfqqurM3Xq1D5f7e3tKZVKufHGG4/5Hz2j00B/x5x11lm55557snv37pxxxhn59re/nRUrVmTZ\nsmW56KKLynw1DLWB3i+7du3KH/7hH6a5uTkTJkzIc889l//6X/9rPvGJT2TRokVlvhrK6cCBA3n5\n5Zeze/fu/Mmf/EnOP//81NfXp6urK5MmTRq084zKf8q48sor09nZmdWrV2fPnj2ZPXt22tvbM3Xq\n1HKXRhn9vPtix44dff5174//+I/T1dV1zC/j3/7t387q1auHtXaG30DvFxjoPTN9+vQ88cQT+exn\nP5tZs2alqakpn/3sZ7Ny5cpyXQLDaKD3y6pVqzJmzJisWrUqO3fuzNSpU9PS0pK77rqrXJdAhXj+\n+efz8Y9/PFVVVamqqsry5cuTJFdffXUeeOCBQTtPVUlPCwAAKKBnDgAAFBIaAACAQkIDAABQSGgA\nAAAKCQ0AAEAhoQEAACgkNAAAAIWEBgAAoJDQAAAAFBIaAACAQkIDAABQ6P8HkweiTTiXR7UAAAAA\nSUVORK5CYII=\n",
      "text/plain": [
       "Graphics object consisting of 1 graphics primitive"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "p = plot(h, (0,1))\n",
    "show(p)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "In order to reproduce the analytical solution using Moltres, it is essential to add the InflowBC boundary condition on the inlet boundary for cases where advection is dominant. Here is the Moltres solution without the InflowBC:\n",
    "\n",
    "![caption](files/without_inflow_bc_component.png)\n",
    "\n",
    "and here is the Moltres solution with the InflowBC:\n",
    "\n",
    "![caption](files/with_inflow_bc_component.png)\n",
    "\n",
    "This undershoot behavior in the former case is what I was observing in my temperature simulations. Glad we are getting an understanding now!"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Scratch"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "fprime(x=1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "expr = (fprime(x=1) - 1) / e\n",
    "print(expr)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "type(expr)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "type(x)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "x = var('x')\n",
    "type(x)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "_K1, K1 = var('_K1 K1')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "solve(expr, _K1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "SageMath 7.3",
   "language": "",
   "name": "sagemath"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 2
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython2",
   "version": "2.7.10"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 0
}
